package com.bto.solar.work.dto.lease;

import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;

import java.util.List;

/**
 * @author 王小波
 * @description:
 * @date 2023/8/4 9:48
 */
@NoArgsConstructor
@Data
public class InsuranceRenewalBody {
    @JsonProperty("leaseItemRenewal")
    private LeaseItemRenewal leaseItemRenewal;
    @JsonProperty("insuranceList")
    private List<Insurance> insuranceList;
    @JsonProperty("financeProjectFileInfo")
    private FinanceProjectFileInfo financeProjectFileInfo;

    @NoArgsConstructor
    @Data
    public static class LeaseItemRenewal {
        @JsonProperty("division")
        private String division;
        @JsonProperty("insuranceNumber")
        private String insuranceNumber;
    }

    @NoArgsConstructor
    @Data
    @Accessors(chain = true)
    public static class FinanceProjectFileInfo {
        @JsonProperty("keyType")
        private String keyType;
        @JsonProperty("fileList")
        private List<FileList> fileList;

        @NoArgsConstructor
        @Data
        public static class FileList {
            @JsonProperty("fileName")
            private String fileName;
            @JsonProperty("fileAddress")
            private String fileAddress;
        }
    }

    @NoArgsConstructor
    @Data
    public static class Insurance {
        @JsonProperty("partnersContractNumber")
        private String partnersContractNumber;
        @JsonProperty("businessKey")
        private String businessKey;
        @JsonProperty("insuranceType")
        private String insuranceType;
        @JsonProperty("insuranceDateFrom")
        private String insuranceDateFrom;
        @JsonProperty("insuranceDateTo")
        private String insuranceDateTo;
        @JsonProperty("insuranceCompany")
        private String insuranceCompany;
        @JsonProperty("insuranceAmount")
        private String insuranceAmount;
        @JsonProperty("firstBeneficiary")
        private String firstBeneficiary;
    }
}
